home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 February: Tool Chest / Apple Developer CD Series Tool Chest February 1996 (Apple Computer)(1996).iso / Tool Chest / Interfaces & Libraries / Interfaces / AIncludes / FSPrivate.a < prev    next >
Encoding:
Text File  |  1993-12-02  |  20.1 KB  |  492 lines  |  [TEXT/MPS ]

  1. ;    File:        FSPrivate.a
  2. ;
  3. ;    Copyright:    © 1983-1993 by Apple Computer, Inc.
  4. ;                All rights reserved.
  5. ;
  6. ;    Version:    System 7.1 for ETO #11
  7. ;    Created:    Tuesday, March 30, 1993 18:00
  8. ;
  9. ;___________________________________________________________________________
  10.  
  11.     IF &TYPE('__INCLUDINGFSPRIVATE__') = 'UNDEFINED' THEN
  12. __INCLUDINGFSPRIVATE__    SET    1
  13.  
  14.  
  15.                   IF          (&TYPE('FSPNonPortable') = 'UNDEFINED') THEN
  16. FSPNonPortable    EQU         0
  17.                   ENDIF
  18. HFSDebug          EQU         0                         ; include HFS debug traps if 1
  19.  
  20.  
  21.                   IF          FSPNonPortable THEN       ;begin exclusion of private information
  22. ; Function: This file contains the complete File System equates for MFS and HFS. It is
  23. ; an extension of the equates defined by old FSEQU.a
  24.  
  25. ;
  26. ; Constant definitions
  27. ;
  28. btsPrBlk          EQU         12                        ; bits per block in volume map (FS volume)
  29. ; ExtendFile option flags
  30.  
  31. EFContig          EQU         1                         ; force contiguous allocation
  32. EFAll             EQU         0                         ; allocate all requested bytes or none
  33. kEFContig         EQU         2                         ; corresponding constants for MOVEQ
  34. kEFAll            EQU         1
  35.  
  36. ; TruncateFile option flags
  37.  
  38. TFTrunExt         EQU         0                         ; truncate to the extent containing new PEOF
  39. kTFTrunExt        EQU         1                         ; corresponding constants for MOVEQ
  40.                   MACRO                                 ; HFS debugging halt trap
  41.                   _HFSDebug
  42.                   IF          HFSDebug THEN             ; only included when actually debugging
  43.                   IF          &Syslst[1]<>'' THEN
  44.                   DC.W        ($F000+&Syslst[1])        ; in case a trap sub-code is specified
  45.                   ELSE
  46.                   DC.W        ($A9FF)                   ; User break
  47.                   ENDIF
  48.                   ENDIF
  49.                   ENDM
  50.  
  51.                   MACRO                                 ; HFS error halt trap
  52.                   _HFSDSErr
  53.                   _HFSDebug   &Syslst[1]                ; Pause first if debugging
  54.                   MOVEQ       #DSFSErr,D0               ; Error code = 27, Fatal File System Error
  55.                   _SysError                             ; Stop the engines
  56.                   ENDM
  57.  
  58.                   ENDIF                                 ;end exclusion of private information
  59.  
  60. strtDir           EQU         2                         ; directory master block location (block #)
  61. bufSiz            EQU         512                       ; standard file system buffer size in bytes
  62. hdrSiz            EQU         10                        ; size of header prefixed to buffer
  63. bufModBit         EQU         7                         ; dirty bit in high byte of buf tag word
  64. bufFNum           EQU         -10                       ; offset from buf start to file number longword
  65. bufFlags          EQU         -6                        ; offset from buf start to file flags word
  66. bufFBlk           EQU         -4                        ; offset from buf start to file block word
  67. bufTag            EQU         -2                        ; offset from buf start to tag word
  68. nxFreeFN          EQU         16                        ; next free file number
  69. nxFreeDID         EQU         3                         ; next free directory id
  70. alBlkSize         EQU         512                       ; default allocation block size (1 sector, in bytes)
  71. clpSize           EQU         4*512                     ; default allocation clump size (in bytes)
  72.  
  73.  
  74. maxHFSTrap        EQU         17                        ; Highest TFS trap dispatch index
  75.  
  76.  
  77. ;_______________________________________________________________________
  78.  
  79. ; fixed location labels: (equivalent of zero page)
  80.  
  81.  
  82. hfsVars           EQU         $36A                      ; Start of TFS variables in RAM version
  83. ; (previously RgSvArea)
  84. hfsTmpSize        EQU         16                        ; Additional temporary space for TFS
  85. hfsStkLen         EQU         1280                      ; Allocate a decent-sized chunk of memory
  86. HFSStkTop         EQU         $36A                      ; Temporary location of pointer to top of Stack
  87. HFSStkPtr         EQU         $36E                      ; Temporary location of TFS Stack pointer
  88. WDCBsPtr          EQU         $372                      ; Working Directory queue header
  89. HFSFlags          EQU         $376                      ; Internal TFS flags
  90. DefVRefNum        EQU         $384                      ; Default volume's VRefNum (COULD BE WDRefNum!)
  91.  
  92. ;
  93. ; Flag bits in HFSFlags byte:
  94. ;
  95. hfsReq            EQU         0                         ; Set if request is specific to TFS
  96. dirCN             EQU         1                         ; Set if a CNode is a directory
  97. hfsContd          EQU         7                         ; Set if Async trap is continued
  98. noPMSP            EQU         6                         ; Set to disable PMSP completely (status flag)
  99. skipPMSP          EQU         5                         ; Set to skip PMSP setup (one-shot)
  100. SysCRefCnt        EQU         $377                      ; Usage count byte for system caches (number of vols)
  101. CacheFlag         EQU         $377                      ; cache usage count now used as cache flag
  102. CacheVars         EQU         $394
  103. cacheCom          EQU         $39C
  104. noRWIPBit         EQU         7
  105. diskRdBit         EQU         6
  106. dontInstRC        EQU            5                        ; set if don't load ramcache in the boot process.    <22May90>
  107.                                                     ; so the RamCache INIT supercedes System's.            <22May90>
  108. SysBMCPtr         EQU         $378                      ; System-wide bitmap cache pointer
  109. SysVolCPtr        EQU         $37C                      ; System-wide volume cache pointer
  110. SysCtlCPtr        EQU         $380                      ; System-wide control cache pointer
  111. PMSPPtr           EQU         $386                      ; Pointer to list of directories on PMSP
  112. HFSDSErr          EQU         $392                      ; Final gasp - error that caused IOErr.
  113. HFSVarEnd         EQU         $394                      ; End of hfs variable area
  114. hfsStkOvf         EQU         99                        ; Deep trouble alert - HFS stack overflowed.
  115. CurDB             EQU         $340                      ; current directory block
  116. FSCallAsync       EQU         $342                      ; ONE BYTE FREE
  117. NewMount          EQU         $34A                      ; (1) used by MountVol to flag new mounts
  118. NoEject           EQU         $34B                      ; used by Eject and Offline
  119. DrMstrBlk         EQU         $34C                      ; master directory block in a volume
  120. ErCode            EQU         $3A2                      ; use this loc to report errors during async
  121. ; routines
  122. FSIOErr           EQU         $3DE                      ; last I/O error (NEXT WORD FREE)
  123. FSQueueHook       EQU         $3E2                      ; hook to capture all FS calls
  124. ExtFSHook         EQU         $3E6                      ; command done hook
  125. DskSwtchHook      EQU         $3EA                      ; hook for disk-switch dialog
  126. ReqstVol          EQU         $3EE                      ; ptr to VCB of off-line or ext fs volume
  127. FSVarEnd          EQU         $3F6                      ; end of file system variables
  128. fsVarLth          EQU         $B6
  129. fsClrWDLen        EQU         $A2                       ;length to clear in boot blocks
  130.  
  131.  
  132. ; Internal File System Error codes
  133. ;
  134. ; Cache errors
  135.  
  136. chNoBuf           EQU         1                         ; no free cache buffers (all in use)
  137. chInUse           EQU         2                         ; requested block in use
  138. chnotfound        EQU         3                         ; requested block not found
  139. chNotInUse        EQU         4                         ; block being released was not in use
  140.  
  141. ; FXM Internal error codes:
  142.  
  143. fxRangeErr        EQU         16                        ; file position beyond mapped range
  144. fxOvFlErr         EQU         17                        ; extents file overflow
  145.  
  146. ; TFS internal errors
  147.  
  148. fsDSIntErr        EQU         -127                      ; Internal file system error
  149.  
  150. ; BTree error codes
  151.  
  152. btnotfound        EQU         32                        ; record not found
  153. btexists          EQU         33                        ; record already exists
  154. btnospace         EQU         34                        ; no available space
  155. btnoFit           EQU         35                        ; record doesn't fit in node 
  156. btbadNode         EQU         36                        ; bad node detected
  157. btbadHdr          EQU         37                        ; bad BTree header record detected
  158. dsBadRotate       EQU         64                        ; bad BTree rotate
  159.  
  160. ; CM result codes
  161.  
  162. cmnotfound        EQU         48                        ; CNode not found
  163. cmexists          EQU         49                        ; CNode already exists
  164. cmnotempty        EQU         50                        ; directory CNode not empty (valence = 0)
  165. cmRootCN          EQU         51                        ; invalid reference to root CNode
  166. cmbadnews         EQU         52                        ; detected bad catalog structure
  167.  
  168. ; File IDs result codes
  169.  
  170. cmFThdDirErr      EQU         53                        ; thread belongs to a directory not a file
  171. cmFThdGone        EQU         54                        ; file thread doesn't exist
  172.  
  173. ;
  174. ; extent key record (prefix xkr)
  175. ;
  176.  
  177. dataFk            EQU         $00                       ; data fork type
  178. rsrcFk            EQU         $FF                       ; resource fork type
  179.  
  180. xkrKeyLen         EQU         0                         ; key length (byte)
  181. xkrFkType         EQU         1                         ; fork type (byte)
  182. xkrFNum           EQU         2                         ; file number (long)
  183. xkrFABN           EQU         6                         ; starting file allocation block number (word)
  184. lenxkr            EQU         8                         ; length of a xkr
  185.  
  186. ;
  187. ; extent data record (prefix xdr)
  188. ;
  189. numExts           EQU         3                         ; number of extents per record
  190. lenExt            EQU         4                         ; length of an extent entry
  191. maxExtOff         EQU         lenExt*numExts-lenExt     ; max extent entry offset
  192. xdrStABN          EQU         0                         ; starting physical allocation block number (word)
  193. xdrNumABlks       EQU         2                         ; number of allocation blocks (word)
  194. lenxdr            EQU         12                        ; length of a xdr (3 extent entries)
  195.  
  196. ;
  197. ; FXM variables (FXVars) storage layout
  198. ;
  199. fxvFlags          EQU         0                         ; FXM Flags (byte)
  200. fxvTContig        EQU         6                         ; ...try contiguous allocation first
  201. fxvFContig        EQU         7                         ; ...force contiguous allocation
  202. fxvResrv          EQU         1                         ; reserved (byte)
  203. fxvxkrOff         EQU         2                         ; offset to extent key record
  204. fxvxdrOff         EQU         fxvxkrOff+lenxkr          ; offset to extent data record
  205. lenFXVars         EQU         fxvxdrOff+lenxdr          ; length of FXM vars
  206.  
  207.  
  208.  
  209. ;
  210. ; Cache Queue header (prefix cqh)
  211. ;
  212. cqhFlink          EQU         0                         ; (long) forward link pointer
  213. cqhBlink          EQU         4                         ; (long) backward link pointer
  214. cqhNumBuf         EQU         8                         ; (word) number of buffers
  215. cqhBufSize        EQU         10                        ; (word) buffer size
  216. LenCQH            EQU         12                        ; length of CQH
  217. ;
  218. ; Cache Buffer Header definition (prefix cbh)
  219. ;
  220. cbhFlink          EQU         0                         ; (long) forward link
  221. cbhBlink          EQU         4                         ; (long) backward link
  222. cbhVCBPtr         EQU         8                         ; (long) VCB pointer
  223. cbhFlNum          EQU         12                        ; (long) file number
  224. cbhFRefNum        EQU         16                        ; (word) file refnum
  225. cbhDBlk           EQU         18                        ; (long) disk block number (-1 = empty)
  226. cbhFlBlk          EQU         22                        ; (long) file block number
  227. cbhFlags          EQU         26                        ; (byte) flags
  228. cbhdirty          EQU         7                         ; ...buffer dirty flag
  229. cbhinuse          EQU         6                         ; ...buffer in use flag
  230. cbhempty          EQU         5                         ; ...buffer is empty
  231. cbhFkType         EQU         27                        ; (byte) fork type
  232. ; ...$00 = data fork
  233. ; ...$FF = resource fork
  234. cbhData           EQU         28                        ; start of buffer data area
  235. lenCBH            EQU         28                        ; length of cbh
  236.  
  237. ; Local buffer equates
  238.  
  239. cobDBlk           EQU         cbhDBlk                   ; (long) disk block
  240. cobFlBlk          EQU         cbhFlBlk                  ; (long) file block
  241. cobFlags          EQU         cbhFlags                  ; (byte) flags (only dirty bit is used)
  242.  
  243. ; FlushCache option flags
  244. fCfreeBit        EQU            1                         ; free buffers after flush (save in the hash)    <27Aug90>
  245. fCtrash           EQU         0                         ; trash buffer contents after flush
  246. ;; kFCfree works as kFCtrash on pre-7.0 RamCache    ; on 7.0, kFCfree overrides kFCtrash            <28Aug90>
  247. kFCfree            EQU            3                        ; corresponding constant for MOVEQ load            <27Aug90>
  248. kFCtrash          EQU         1                         ;
  249.  
  250. ; GetBlock option flags
  251.  
  252. gbrelease         EQU         3                         ; release block immediately after get
  253. gbnoRead          EQU         2                         ; don't read block from disk
  254. gbexist           EQU         1                         ; get existing cache block
  255. gbRead            EQU         0                         ; read block from disk (forced read)
  256. kGBrelease        EQU         8                         ; corresponding constants for MOVEQ load
  257. kGBnoRead         EQU         4                         ;
  258. kGBexist          EQU         2                         ;
  259. kGBRead           EQU         1                         ;
  260.  
  261. ; RelBlock option flags
  262. rbfreeBit         EQU         3                         ; free the buffer (save in the hash)            <27Aug90>
  263. rbdirty           EQU         2                         ; mark buffer dirty
  264. rbtrash           EQU         1                         ; trash buffer contents after release
  265. rbwrite           EQU         0                         ; force write buffer to disk
  266. ;; kRBfree works as kRBtrash on pre-7.0 RamCache    ; on 7.0, kRBfree overrides kRBtrash            <28Aug90>
  267. kRBfree          EQU         10                         ; corresponding constants for MOVEQ load        <27Aug90>
  268. kRBdirty          EQU         4                         ; corresponding constants for MOVEQ load
  269. kRBtrash          EQU         2                         ;
  270. kRBwrite          EQU         1                         ;
  271.  
  272.  
  273.  
  274. ;
  275. ; BTree constants
  276. ;
  277. btNodeSize        EQU         512                       ; default node size
  278. btMaxDepth        EQU         8                         ; max tree depth (don't change this)
  279.  
  280. ;
  281. ; Tree Path Record (TPR)
  282. ;
  283. tprNodeN          EQU         0                         ; node number (long)
  284. tprRIndx          EQU         4                         ; record index (word)
  285. lenTPR            EQU         6                         ; length of TPR
  286. lenTPT            EQU         lenTPR*btMaxDepth         ; length of Tree Path Table
  287.  
  288. ;
  289. ; Node Descriptor (prefix nd)
  290. ;
  291. ndFlink           EQU         0                         ; forward link (long)
  292. ndBlink           EQU         4                         ; backward link (long)
  293. ndType            EQU         8                         ; node type (byte)
  294. ndHdrNode         EQU         1                         ; ...header node
  295. ndMapNode         EQU         2                         ; ...map node
  296. ndIndxNode        EQU         0                         ; ...index node
  297. ndLeafNode        EQU         $FF                       ; ...leaf node
  298. ndNHeight         EQU         9                         ; node height
  299. ndNRecs           EQU         10                        ; number of records (word)
  300. ndResv2           EQU         12                        ; reserved (word)
  301. lenND             EQU         14                        ; length of node descriptor
  302.  
  303. ;
  304. ; BTree Header (bth) on disk
  305. ;
  306. bthDepth          EQU         0                         ; current depth of tree (word)
  307. bthRoot           EQU         2                         ; root node number (long)
  308. bthNRecs          EQU         6                         ; number of leaf records in BTree (long)
  309. bthFNode          EQU         10                        ; node number of 1st leaf node (long)
  310. bthLNode          EQU         14                        ; node number of last leaf node (long)
  311. bthNodeSize       EQU         18                        ; BTree node size in bytes (word)
  312. bthKeyLen         EQU         20                        ; Max. key length (word)
  313. bthNNodes         EQU         22                        ; total number of nodes (long)
  314. bthFree           EQU         26                        ; number of free nodes (long)
  315. lenMemBTH         EQU         30                        ; length of memory resident portion of BTH
  316. ;
  317. bthResv           EQU         30                        ; reserved (76 bytes)
  318. LenBTH            EQU         106                       ; length of a BTH
  319. ;
  320. ; BTree Control Block (btcB) in memory
  321. ;
  322. btcFlags          EQU         0                         ; flags (byte)
  323. btcDirty          EQU         7                         ; ...dirty flag
  324. btcKeyUpd         EQU         6                         ; ...index key update required
  325. btcNewIRec        EQU         5                         ; ...new index record required
  326. btcDelIRec        EQU         4                         ; ...index record delete required
  327. btcResv           EQU         1                         ; reserved (byte)
  328. btcRefNum         EQU         2                         ; file refnum (word)
  329. btcKeyCR          EQU         4                         ; pointer to ext key compare routine (long)
  330. btcCQPtr          EQU         8                         ; pointer to cache queue (long)
  331. btcVarPtr         EQU         12                        ; pointer to BTree variables (long)
  332. btcLevel          EQU         16                        ; current level (word)
  333. btcNodeM          EQU         18                        ; current node mark (long)
  334. btcIndexM         EQU         22                        ; current index mark (word)
  335. ;
  336. ; this part of a btcB is the memory resident portion of the BTH
  337. ;
  338. btcDepth          EQU         24                        ; current depth of tree (word)
  339. btcRoot           EQU         26                        ; root node number (long)
  340. btcNRecs          EQU         30                        ; number of leaf records in BTree (long)
  341. btcFNode          EQU         34                        ; node number of 1st leaf node (long)
  342. btcLNode          EQU         38                        ; node number of last leaf node (long)
  343. btcNodeSize       EQU         42                        ; BTree node size in bytes (word)
  344. btcKeyLen         EQU         44                        ; max key length (word)
  345. btcNNodes         EQU         46                        ; total number of nodes (long)
  346. btcFree           EQU         50                        ; number of free nodes (long)
  347. LenBTCB           EQU         54                        ; length of a BTCB
  348.  
  349. ;
  350. ; BTree Variables (btVars) layout
  351. ;
  352. btVTPTable        EQU         0                         ; Tree Path Table
  353. btVRecord         EQU         btVTPTable+lenTPT         ; record buffer
  354.  
  355.  
  356.  
  357. ;
  358. ; constants
  359. ;
  360. cmMaxKey          EQU         37                        ; max catalog key length
  361. cmMaxCName        EQU         31                        ; max CName length
  362. cmClpSize         EQU         20                        ; catalog clump size
  363. ;
  364. ; CNode types
  365. ;
  366. cmDirCN           EQU         1                         ; directory CNode
  367. cmFilCN           EQU         2                         ; file CNode
  368. ;
  369. ; catalog key record (prefix ckr)
  370. ;
  371. ckrKeyLen         EQU         0                         ; key length (byte)
  372. ckrResrv1         EQU         1                         ; reserved (byte)
  373. ckrParID          EQU         2                         ; parent directory ID (long)
  374. ckrCName          EQU         6                         ; CNode name (str31)
  375. lenckr            EQU         38                        ; length of a ckr
  376.  
  377. ;
  378. ; catalog data record (prefix cdr)
  379. ;
  380. cdrType           EQU         0                         ; record type (byte)
  381. cdrResrv2         EQU         1                         ; reserved (byte)
  382. cdrData           EQU         2                         ; start of catalog record data
  383.  
  384. ;
  385. ; catalog data record types (variants)
  386. ;
  387. cdrDirRec         EQU         cmDirCN                   ; directory record (directory CNode type)
  388. cdrFilRec         EQU         cmFilCN                   ; file record (file CNode type)
  389. cdrThdRec         EQU         3                         ; thread record
  390. cdrFThdRec        EQU         4                         ; file thread record
  391.  
  392. ;
  393. ; catalog directory record (prefix dir)
  394. ;
  395. dirFlags          EQU         2                         ; flags(word)
  396. dirVal            EQU         4                         ; valence (word)
  397. dirDirID          EQU         6                         ; DirID for this directory (long)
  398. dirCrDat          EQU         10                        ; date/time created (long)
  399. dirMdDat          EQU         14                        ; date/time last modified (long)
  400. dirBkDat          EQU         18                        ; date/time last backed up (long)
  401. dirUsrInfo        EQU         22                        ; User info bytes (16 bytes)
  402. dirFndrInfo       EQU         38                        ; Finder Info bytes (16 bytes)
  403. dirResrv          EQU         54                        ; reserved (16 bytes)
  404. lendir            EQU         70                        ; length of a directory record
  405.  
  406. ;
  407. ; catalog thread record (prefix thd)
  408. ;
  409. thdResrv          EQU         2                         ; reserved (8 bytes)
  410. thdParID          EQU         10                        ; Parent ID for this directory (long)
  411. thdCName          EQU         14                        ; CName for this directory (str31)
  412. lenthd            EQU         46                        ; length of a thread record
  413.  
  414. ;
  415. ; catalog file record (prefix fil)
  416. ;
  417. fThreadFlag       EQU         1                         ; bit offset into filFlags (set if thd exists)
  418.  
  419. filWrtFlag        EQU         0                         ; write-allowed bit in flags byte (0 if allowed)
  420. filTypMask        EQU         $FE                       ; (user file-type in bits 1-7)
  421. filFlags          EQU         2                         ; bit 7=1 (used), bit 0=file lock flag, bit 1=fthread
  422. filTyp            EQU         3                         ; file type (used as a name extension)
  423. filUsrWds         EQU         4                         ; user words for file. (16 bytes)
  424. filFlNum          EQU         20                        ; file number
  425. filStBlk          EQU         24                        ; Start file block (alloc blk size)(0000 if none)
  426. filLgLen          EQU         26                        ; File logical length in bytes (EOF)
  427. filPyLen          EQU         30                        ; File physical length in bytes
  428. filRStBlk         EQU         34                        ; Start file block, resource fork (0000 if none)
  429. filRLgLen         EQU         36                        ; File logical length (EOF), resource fork
  430. filRPyLen         EQU         40                        ; File physical length, resource fork
  431. filCrDat          EQU         44                        ; date/time created (long)
  432. filMdDat          EQU         48                        ; date/time last modified (long)
  433. filBkDat          EQU         52                        ; date/time last backed up (long)
  434. filFndrInfo       EQU         56                        ; Additional finder info for file (16 bytes)
  435. filClpSize        EQU         72                        ; file clump size (word)
  436. filExtRec         EQU         74                        ; First 3 data fork extents (12 bytes)
  437. filRExtRec        EQU         86                        ; First 3 resource fork extents (12 bytes)
  438. filResrv          EQU         98                        ; reserved (4 bytes)
  439. lenfil            EQU         102                       ; length of a file record
  440. lencdr            EQU         lenfil                    ; max length of a catalog data record
  441.  
  442. ;
  443. ; CM variables (CM vars) storage layout
  444. ;
  445. ckrOff            EQU         0                         ; offset to catalog key record buffer
  446. cdrOff            EQU         ckrOff+lenckr             ; offset to catalog data record buffer
  447. lenCMVars         EQU         lencdr+lenckr             ; length of CM vars
  448.  
  449. ;
  450. ; FileIDs variables 
  451. ;
  452. fidBogusExtID     EQU         15                        ; use this for exchanging extents in extents file
  453.  
  454. lenCID            EQU         4                         ; length of a cnode id
  455. numExtToCache     EQU         4                         ; just guessing for ExchangeFiles
  456. destExt           EQU         0                         ; offset into extFlgsOff if destination has extents
  457. srcExt            EQU         1                         ; offset into extFlgsOff if source has extents
  458.  
  459. ; fid vars storage layout
  460. tempKeyOff        EQU         0                         ; BEST BE FIRST, SO LOCCREC CAN BE CALLED ALSO!
  461. extOff            EQU         lenCMVars                 ; set up 4 extents
  462. srcDIDOff        EQU            extOff+(numExtToCache*lenxdr)+(numExtToCache*lenxkr); 
  463. destDIDOff        EQU         srcDIDOff+lenCID
  464. extFlgsOff        EQU         destDIDOff+lenCID         ; flags for existance of extents in extents file
  465. srcCNode          EQU         extFlgsOff+2              ; cnode of source
  466. destCNode         EQU         srcCNode+lencdr           ; dest cnode
  467.  
  468. lenFIDSwapVars    EQU         lenCMVars+(numExtToCache*lenxdr)+(numExtToCache*lenxkr)+(2*lenCID)+2+(2*lencdr) 
  469.                                                         ; some catalog variables + the extents +
  470.                                                         ; the directory ids of source and dest +
  471.                                                         ; a word for flagging extents in extent file +
  472.                                                         ; the cnode records of source and dest
  473.  
  474.  
  475. ; further file system equates
  476.  
  477. CkdDB             EQU         $340                      ; (2) used when searching the directory
  478. NxtDB             EQU         $342
  479. MaxDB             EQU         $344
  480. FlushOnly         EQU         $346                      ; (1) flag used by UnMountVol,FlushVol,
  481. RegRsrc           EQU         $347                      ; (1) flag used by OpenRF, FileOpen
  482. FLckUnlck         EQU         $348                      ; (1) flag used by SetFilLock,RstFilLock
  483. FrcSync           EQU         $349                      ; (1) when set, all fs calls are sync'ed
  484. RgSvArea          EQU         $36A                      ; reg save during async calls.
  485. Params            EQU         $3A4                      ; 50 bytes long. For I/O parameter blocks.
  486. FSTemp8           EQU         $3D6                      ; used by rename
  487. FSTemp4           EQU         $3DE                      ; used by rename, ckfilmod
  488. fsVrsn            EQU         '1.2A'                    ; Current file system version
  489.  
  490.  
  491.  
  492.     ENDIF    ; ...already included